package cn.qblank.concurrency.immutable;

import cn.qblank.concurrency.annoations.ThreadSafe;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;

import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * @date 2018/10/31
 * 使用Guava中的ImmutableXXX
 *
 */
@Slf4j
@ThreadSafe
public class ImmutableExample3 {

    private final static ImmutableList<Integer> list = ImmutableList.of(1,2,3,4);

    private final static ImmutableSet<Integer> set = ImmutableSet.copyOf(list);

    private final static ImmutableMap<Integer,Integer> map = ImmutableMap.of(1,2,3,4);

    //使用builder
    private final static ImmutableMap<Integer,Integer> map2 = ImmutableMap.<Integer,Integer>builder().
            put(1,2).put(3,4).put(5,6).build();

    public static void main(String[] args) {
        /*list.add(4);
        set.add(4);
        map.put(1,2);
        map2.put(1,3);*/
        log.info("{}",map.get(1));
        log.info("{}",map2.get(2));
    }
}
